<!DOCTYPE HTML>
<html>
<head><meta name="generator" content="Hexo 3.9.0">
  <meta charset="utf-8">
  
  <title>Java关键字 › 但行好事，莫问前程</title>
  <meta name="author" content="fengbo">
  
  <meta name="description" content="不想当架构师的程序员不是好厨师 ，不认为PHP是世界上最好的编程语言的Python开发者不是一个好的Javaer。">
  
  
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

  <meta property="og:title" content="Java关键字">
  <meta property="og:site_name" content="但行好事，莫问前程">

  
    <meta property="og:image" content="undefined">
  

  <link href="/favicon.png" rel="icon">
  <link rel="alternate" href="/atom.xml" title="但行好事，莫问前程" type="application/atom+xml">
  <link rel="stylesheet" href="/css/style.css" media="screen" type="text/css">
  <!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
  

</head>
</html>

<body>
  <header id="header"><div class="meta inner">
  <h1><a href="/">但行好事，莫问前程</a></h1>
  <h2><a href="/">CV工程师，了解面向Google编程的基本原理，有三年使用Google经验，在通往程序员的道路上艰难的爬行着。</a></h2>
  <nav id="main-nav">
    <ul>
      
      <li><a href="/">Home</a></li>
      
      <li><a href="/archives">Archives</a></li>
      
      <li><a href="/atom.xml">RSS</a></li>
      
    </ul>
    <div class="clearfix"></div>
  </nav>
</div>
<div class="clearfix"></div>
</header>
  <div id="content" class="inner">
    <div id="main-col" class="alignleft"><div id="wrapper"><article class="post">
  <div class="post-content">
    <header>
      
  
    <h1 class="title">Java关键字</h1>
  

      
        <time datetime="2017-06-21T05:56:21.000Z">2017-06-21</time>
      
    </header>
    <div class="entry">
      
        <h2 id="常见关键字"><a href="#常见关键字" class="headerlink" title="常见关键字"></a>常见关键字</h2><pre><code>if  else  switch  case  for  do  while  try  catch  finally  null  break  continue  return  throw  throws  void
boolean  true  false  char  byte  short  int  long  float  double  
class  interface  enum  abstract  import  extends  implements  super  this  package  new
public  protected  default  private volatile synchronized 保留字(goto  const)
</code></pre><a id="more"></a>
<h2 id="不常见关键字"><a href="#不常见关键字" class="headerlink" title="不常见关键字"></a>不常见关键字</h2><ul>
<li>strictfp：精确浮点，让浮点运算更加精确，不会因为不同的硬件平台所执行的结果不一致。</li>
<li>assert：断言。</li>
<li>native：该关键字修饰的方法是一个原生态方法，方法对应的实现不是当前文件，而是在用其他语言（如C和C++）实现的文件中。Java语言本身不能对操作系统底层进行访问和操作，但是通过JNI接口调用其他语言来实现对底层的访问。</li>
<li>transient：在变量前加上该关键字，可以阻止该变量被序列化到文件中。在反序列化后，该变量被设置为初始值，如 int 型的是 0，对象型的是 null。</li>
</ul>
<h2 id="static关键字"><a href="#static关键字" class="headerlink" title="static关键字"></a>static关键字</h2><h3 id="static修饰属性"><a href="#static修饰属性" class="headerlink" title="static修饰属性"></a>static修饰属性</h3><ul>
<li>即静态变量，静态变量被所有对象共享，在内存中只有一个副本，在类被初次加载时被初始化。</li>
<li>初始化顺序按照定义的顺序进行初始化。</li>
<li><b>静态变量一般会被作为GC的root节点。即静态变量基本上不会被回收，所以很容易引入内存泄漏，特别是修饰List、Map等集合时要特别注意。</b></li>
<li><b>static是不允许用来修饰局部变量。</b></li>
</ul>
<p>static修饰方法：即静态方法，静态方法不依赖任何对象就可以访问。<b>类的构造器默认是静态方法。</b><br>static修饰内部类：静态内部类等于外部类。<br>static代码块：static代码块会在类加载的时候，按照顺序执行一次。</p>
<h2 id="final关键字"><a href="#final关键字" class="headerlink" title="final关键字"></a>final关键字</h2><h3 id="final变量"><a href="#final变量" class="headerlink" title="final变量"></a>final变量</h3><ul>
<li>凡是对成员变量或者局部变量声明为final的都叫作final变量，final变量是只读的。</li>
<li>final变量经常和static关键字一起使用，作为常量。</li>
<li><a href="https://www.zhihu.com/question/21762917/answer/19239387" target="_blank" rel="noopener">在能够通过编译的前提下，无论局部变量声明时带不带final关键字修饰，对其访问的效率都一样。因为在字节码里没有体现局部变量的final与否。</a></li>
</ul>
<h3 id="final方法"><a href="#final方法" class="headerlink" title="final方法"></a>final方法</h3><ul>
<li>方法前面加上final关键字，代表这个方法不可以被子类的方法重写。如果你认为一个方法的功能已经足够完整了，子类中不需要改变的话，你可以声明此方法为final。</li>
<li>final方法比非final方法要快，<b>因为在编译的时候已经静态绑定了，不需要在运行时再动态绑定。</b></li>
<li>final类：使用final来修饰的类叫作final类。final类通常功能是完整的，它们不能被继承。Java中有许多类是final的，譬如String, Interger以及其他包装类。</li>
</ul>
<h3 id="关于final的一些需要注意的点"><a href="#关于final的一些需要注意的点" class="headerlink" title="关于final的一些需要注意的点"></a>关于final的一些需要注意的点</h3><ul>
<li>final关键字容易与finalize()方法搞混，后者是在Object类中定义的方法，是在垃圾回收之前被JVM调用的方法。</li>
<li><b>接口中声明的所有变量都是public static final的。</b></li>
<li>final和abstract这两个关键字是反相关的，final类就不可能是abstract的。</li>
<li>将类、方法、变量声明为final能够提高性能，这样JVM就有机会进行优化。</li>
<li>对于集合对象声明为final指的是引用不能被更改，但是你可以向其中增加，删除或者改变内容。</li>
</ul>
<h2 id="instanceof关键字"><a href="#instanceof关键字" class="headerlink" title="instanceof关键字"></a>instanceof关键字</h2><p>该关键字用于判断对象是否是某个类或者是其子类的实例。</p>
<h3 id="instanceof关键字和Class类的isInstance-Object-方法对比"><a href="#instanceof关键字和Class类的isInstance-Object-方法对比" class="headerlink" title="instanceof关键字和Class类的isInstance(Object)方法对比"></a>instanceof关键字和Class类的isInstance(Object)方法对比</h3><pre><code>class InstanceofDemo {
    public static void main(String[] args) {
        Object hello = &quot;Hello&quot;;
        System.out.println(hello instanceof Object);    // true
        System.out.println(hello instanceof String);    // true
        // Object hello = &quot;Hello&quot;;中的hello变量编译时类型是Object类，但实际是String。因此hello instanceof Math可以编译通过。
        System.out.println(hello instanceof Math);      // false
        // String实现了Comparable接口
        System.out.println(hello instanceof Comparable);// true 
        System.out.println(Object.class.isInstance(hello));
        System.out.println(String.class.isInstance(hello));
        System.out.println(Math.class.isInstance(hello));
        System.out.println(Comparable.class.isInstance(hello));
        String a = &quot;Hello&quot;;
//        System.out.println(a instanceof Math);        // 编译错误
        System.out.println(Math.class.isInstance(a));   // 编译通过 false
    }
}
</code></pre>
      
    </div>
      
      <footer>
        
        
  
  <div class="tags">
    <a href="/tags/Java基础/">Java基础</a>
  </div>

        
  <div class="addthis addthis_toolbox addthis_default_style">
    
      <a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
    
    
      <a class="addthis_button_tweet"></a>
    
    
      <a class="addthis_button_google_plusone" g:plusone:size="medium"></a>
    
    
      <a class="addthis_button_pinterest_pinit" pi:pinit:layout="horizontal"></a>
    
    <a class="addthis_counter addthis_pill_style"></a>
  </div>
  <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js"></script>

      
      <div class="clearfix"></div>
      </footer>
  </div>
</article>

<!-- 来必力City版安装代码 -->
<!-- <div id="lv-container" data-id="city" data-uid="MTAyMC8yOTQ5MS82MDU5">
<script type="text/javascript">
   (function(d, s) {
       var j, e = d.getElementsByTagName(s)[0];

       if (typeof LivereTower === 'function') { return; }

       j = d.createElement(s);
       j.src = 'https://cdn-city.livere.com/js/embed.dist.js';
       j.async = true;

       e.parentNode.insertBefore(j, e);
   })(document, 'script');
</script>
<noscript>为正常使用来必力评论功能请激活JavaScript</noscript>
</div> -->
<!-- City版安装代码已完成 -->

</div></div>
    <aside id="sidebar" class="alignright">
  
<div class="widget tagcloud">
  <h3 class="title">文章分类</h3>
  <div class="entry">
    <a href="/tags/JavaWeb/" style="font-size: 17.14px;">JavaWeb</a> <a href="/tags/Java基础/" style="font-size: 15.71px;">Java基础</a> <a href="/tags/Java高级特性/" style="font-size: 15.71px;">Java高级特性</a> <a href="/tags/Python/" style="font-size: 10px;">Python</a> <a href="/tags/Spring基础/" style="font-size: 14.29px;">Spring基础</a> <a href="/tags/WebRTC/" style="font-size: 10px;">WebRTC</a> <a href="/tags/其它/" style="font-size: 20px;">其它</a> <a href="/tags/分布式/" style="font-size: 11.43px;">分布式</a> <a href="/tags/硬件/" style="font-size: 12.86px;">硬件</a> <a href="/tags/计算机基础/" style="font-size: 18.57px;">计算机基础</a> <a href="/tags/设计模式/" style="font-size: 17.14px;">设计模式</a>
  </div>
</div>



    <div class="widget tagcloud">
    <h3 class="title">电子书</h3>
    <ul class="entry">
      <li class='link'><a href='http://www.duokan.com/' target="_blank">多看阅读</a>&nbsp;&nbsp;<a href='https://read.douban.com/' target="_blank">豆瓣阅读</a>&nbsp;&nbsp;<a href='http://e.dangdang.com/' target="_blank">当当阅读</a></li>
      <li class='link'><a href='http://www.ituring.com.cn/' target="_blank">图灵社区</a>&nbsp;&nbsp;<a href='https://www.epubit.com/' target="_blank">异步社区</a>&nbsp;&nbsp;<a href='https://www.geekbang.org/' target="_blank">极客空间</a></li>
    </ul>
  </div>


  
  <div class="widget tag">
    <h3 class="title">友情链接</h3>
      <ul class="entry">
        
          <li class='link'><a href='http://www.cnblogs.com/jietang/' target="_blank">唐洁的博客</a></li>
        
          <li class='link'><a href='http://rednaxelafx.iteye.com/' target="_blank">R大的博客</a></li>
        
          <li class='link'><a href='http://www.hollischuang.com/' target="_blank">阿里大神的博客</a></li>
        
          <li class='link'><a href='http://blog.csdn.net/IT_faquir/' target="_blank">IT_faquir的专栏</a></li>
        
      </ul>
  </div>


  
  <div class="widget tag">
    <h3 class="title">思维导图</h3>
      <ul class="entry">
        
          <li class='link'><a href='https://fengbo4213.github.io/img/开源协议.png' target="_blank">开源协议简介</a></li>
        
          <li class='link'><a href='https://www.processon.com/diagraming/5b0cf757e4b009aef58d4b9d' target="_blank">我的知识体系</a></li>
        
          <li class='link'><a href='https://www.processon.com/view/link/5a2a00e5e4b015e677290b4f' target="_blank">简单的网站架构</a></li>
        
      </ul>
  </div>


  
  <div class="widget tag">
    <h3 class="title">在线手册</h3>
      <ul class="entry">
        
          <li class='link'><a href='http://v3.bootcss.com/' target="_blank">BootStrap官方手册</a></li>
        
          <li class='link'><a href='http://www.iconfont.cn/http://element.eleme.io/#/zh-CN/' target="_blank">阿里巴巴矢量图标库</a></li>
        
      </ul>
  </div>


  
<div class="widget tag">
  <h3 class="title">最新文章</h3>
  <ul class="entry">
    
      <li>
        <a href="/2123/08/30/基础之MySQL原理/">MySQL原理</a>
      </li>
    
      <li>
        <a href="/2024/01/01/其它之ClickHouse索引/">ClickHouse索引</a>
      </li>
    
      <li>
        <a href="/2023/12/17/其它之MySQL线程池/">MySQL线程池</a>
      </li>
    
      <li>
        <a href="/2023/12/16/其它之InnoDB性能优化基础/">InnoDB性能优化基础</a>
      </li>
    
      <li>
        <a href="/2023/12/03/其它之Java8之后的版本新特性/">Java8之后的版本新特性</a>
      </li>
    
  </ul>
</div>

</aside>
    <div class="clearfix"></div>
  </div>
  <footer id="footer" class="inner"><div class="alignleft">
  
  &copy; 2024 fengbo
  
</div>
<div class="clearfix"></div></footer>
  <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>



</body>
</html>

